package service

import (
	"github.com/gogf/gf/errors/gerror"
	"github.com/gogf/gf/frame/g"
	"github.com/gogf/gf/net/ghttp"
	"shrimp-blog-server/app/dao"
	"shrimp-blog-server/app/model"
)

func (*PageTemplateService) AddPageTemplate(req *ghttp.Request, pageTemplate ...model.PageTemplate) {
	if len(pageTemplate) == 0 {
		responses.ErrorResponseExit(req, "请输入页面模板信息")
	}
	for _, v := range pageTemplate {
		if v.Name == "" {
			responses.ErrorResponseExit(req, "请输入页面模板名称")
		}
	}
	result, err := dao.PageTemplate.Insert(pageTemplate...)
	if err != nil {
		g.Log("添加页面模板失败").Error(err)
		panic(gerror.New("添加页面模板失败"))
	}
	if result == 0 {
		responses.ErrorResponseExit(req, "添加页面模板失败")
	}
	responses.SuccessResponse(req)
}

func (*PageTemplateService) UpdatePageTemplate(req *ghttp.Request, pageTemplate ...model.PageTemplate) {
	if len(pageTemplate) == 0 {
		responses.ErrorResponseExit(req, "请输入页面模板信息")
	}
	for _, v := range pageTemplate {
		if v.Name == "" {
			responses.ErrorResponseExit(req, "请输入页面模板名称")
		}
	}
	result, err := dao.PageTemplate.Update(pageTemplate...)
	if err != nil {
		g.Log("更新页面模板失败").Error(err)
		panic(gerror.Wrap(err, "更新页面模板失败"))
	}
	if result == 0 {
		responses.ErrorResponseExit(req, "更新页面模板失败")
	}
	responses.SuccessResponse(req)
}
func (*PageTemplateService) DeletePageTemplate(req *ghttp.Request, ids ...uint) {
	if len(ids) == 0 {
		responses.ErrorResponseExit(req, "请输入页面模板id")
	}
	models := make([]model.PageTemplate, len(ids))

	result, err := dao.PageTemplate.Delete(models...)
	if err != nil {
		g.Log("删除页面模板失败").Error(err)
		panic(gerror.Wrap(err, "删除页面模板失败"))
	}
	if result == 0 {
		responses.ErrorResponseExit(req, "删除页面模板失败")
	}
	responses.SuccessResponse(req)
}

func (*PageTemplateService) GetPageTemplateByPage(req *ghttp.Request, page, limit int) {
	if page < 1 {
		page = 1
	}
	if limit < 1 {
		limit = 10
	}
	pageTemplateArr, err := dao.PageTemplate.GetModelsByPage(page, limit)
	if err != nil {
		g.Log("获取页面模板失败").Error(err)
		panic(gerror.Wrap(err, "获取页面模板失败"))
	}
	responses.Json(req, successCode, successMessage, pageTemplateArr)
}

func (*PageTemplateService) GetPageTemplateById(req *ghttp.Request, id ...uint) {
	if len(id) == 0 {
		responses.ErrorResponseExit(req, "请输入页面模板id")
	}
	pageTemplate, err := dao.PageTemplate.GetModelById(id...)
	if err != nil {
		g.Log("获取页面模板失败").Error(err)
		panic(gerror.Wrap(err, "获取页面模板失败"))
	}
	responses.Json(req, successCode, successMessage, pageTemplate)
}
